<?php
class SqlAlteraValorPadrao {
/**
 * Metodo Responsavel em alterar o valor de um unico campo
 *
 * @return json
 */
    public function executa() {
        $retorno = array();

        $trataDados = new TrataDados;
        if ( $trataDados->pegaDados() ) {
            $dados = $trataDados->getDados();
            $tabelaModulo   = $trataDados->getModuloTabela();
            $tabela         = $trataDados->getTabela();

            // verifica se registro existe
            $sql = new SqlEditar;
            $sql->setTabela($tabelaModulo); // define o nome da tabela
            $sql->setCampo($dados['campo'], $dados[$dados['campo']]);
            // cria critério de seleção de dados
            $criterio = new SqlCriterio;
            $criterio->add(new SqlFiltro("id_{$tabela}", '=', $trataDados->getIdTabela()));
            // define o critério de seleção de dados
            $sql->setCriterio($criterio);

            try {
                $pdo = Conexao::open('sistema'); // inicia conexao

                $pdo->exec($sql->getInstrucao()); // retorna a instrução SQL e a executa
                $sessao = new Sessao;
                // atribui valores para inserir historico
                $historico = new Historico;
                $historico->setIdUsuario($sessao->getValor("sessao_id_usuario"));
                $historico->setAcao("Editar");
                $historico->setIdRegistro($trataDados->getIdTabela());
                $historico->setNomeTabela($tabelaModulo);
                $historico->setSql($sql->getInstrucao());
                $historico->cadastraHistorico(); // inseri historico

                $pdo = null; // fecha conexao

                $retorno['resultado']   = 'sim';
            } catch ( PDOException $e ) {
                new Excecao($e);
                $retorno['resultado']   = 'erro';
                $retorno['erro']        = 'alterar_valor';
            }
        } else {
            $retorno['resultado']       = 'dados_errados';
            $retorno['dados_errados']   = $trataDados->getErro();
        }
        return json_encode($retorno);
    }
}
?>